1. Field of the Invention
The present invention provides a means for effectively communicating data between processors using a unique protocol. More particularly, the present invention provides a method and apparatus for communicating messages in a given format which allows for improved error and flow control.
2. Description of Prior Art
Data communications, or computer communications, is the process of communicating information in a form suitable for processing by computers and peripheral devices that may be connected to those computers. Communications hardware is reasonably standard and generally presents few problems. However, when communication is desired among heterogeneous machines, i.e. machines made by different vendors or different models of machines made by the same vendor, the software development effort becomes increasingly difficult. Different vendors use different data formats and data exchange conventions. Even within one vendor's product line, different model computers may communicate in unique ways.
To facilitate computer communications and computer networking, computer vendors needed to adopt and implement a common set of conventions. However, in order to develop adequate standards, there needs to be a structure or architecture that defines the communication tasks. A formal hierarchial identification of all data communications network functions has been established by the International Standards Organizations ("ISO") and referred to as the ISO model for Open Systems Interconnection ("OSI"). This model identifies seven (7) distinct levels, or layers, of functional requirements pertaining to a data communications network. Each layer (i) performs a related subset of the functions required to communicate with another system; (ii) relies on the next lower layer to perfrom more primitive functions and to conceal the details of those functions; and (iii) provides services for the next higher layer.
The OSI layers consist of (1) the physical layer which governs the physical interface between devices and the rules by which bits are passed from one to another; (2) the data link layer which attempts to make the physical link reliable, i.e. error-free, and provides the means to activate, maintain and deactivate the link; (3) the network layer which is responsible for establishing, maintaining, and terminating connections across an intervening communications facility; (4) the transport layer which insures that data units are delivered error-free, in sequence and without losses or duplications; (5) the session layer which provides means for two application processes to establish and use a connection, called a session; (6) the presentation layer which resolves differences in the syntax (representation) of the data exchanged between application entities and provides for the selection and subsequent modification of the syntax to be used; and (7) the application layer which contains management functions and other useful mechanisms to support distributed applications.
The OSI layers are defined so that changes in one layer do not require changes in the other layers. Communication is achieved by having corresponding or "peer" entities in the same layer in two different systems communicate via a protocol. A protocol is a set of rules governing a time sequence of events that take place between peer entities; that is, between equipment or layers on the same level.
The most common way in which protocols are realized is with the use of a header. When an application X has data to send to another application Y, it transfers those data to an application entity in the application layer. A header is appended to the data that contains the required information for the peer layer 7 protocol. The original data, plus the header, is now passed as a unit to layer 6. The presentation entity treats the whole unit as data, and appends its owns header. This process continues down through layer 2, which generally adds both a header and a trailer. This layer 2 unit, called a frame, is then passed by the physical layer onto the transmission medium. When the frame is received by the target system, the reverse process occurs. As the data ascends, each layer strips off the outermost header, acts on the protocol information contained therein, and passes the remainder up to the next layer.
In general, the reliability of a data communications system may be directly traced to the functional effectiveness of the data link layer protocol being used. Because data is usually sent in blocks (frames), the beginning and end of each block (frame) must be clearly identifiable. Further, the sending station must not send frames at a rate faster than the receiving station can absorb them. Additionally, the bit erors introduced by the transmission system must be corrected. Also, the receiver must be able to distinguish control information from the data being transmitted.
The present invention provides method and apparatus for communicating data using a protocol which uniquely meets the aforementioned requirements and objectives of an effective data communications system.